﻿using DimensionsHelper.LanguageService.Syntax;

namespace DimensionsHelper.LanguageService.Symbols;

/// <summary>
///     指代源代码中未定义的符号
/// </summary>
public sealed class UndefinedSymbol : AbstractTypeSymbol
{
    private UndefinedSymbol() : base(SymbolKinds.Undefined, TypeKinds.Unknown)
    {
    }


    public override string Name => "Undefined";

    public override string FullName => Name;


    /// <summary>
    ///     默认的未定义符号，所有使用未定义符号的位置都使用此属性的值。
    /// </summary>
    public static UndefinedSymbol Default { get; } = new();


    public override bool CanMakeArray => false;


    public override bool IsUndefined => true;


    public override IDeclaration? Declaration => null;


    internal override bool TryAddMember(ISymbol member)
    {
        return false;
    }
}